[INFO] cloning repository https://github.com/tmineno/gitforum
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tmineno/gitforum" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftmineno%2Fgitforum", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftmineno%2Fgitforum'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 426d32a3ff0366a48361ed4329580cc0b8f8bfa4
[INFO] testing tmineno/gitforum against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftmineno%2Fgitforum" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tmineno/gitforum
[INFO] finished tweaking git repo https://github.com/tmineno/gitforum
[INFO] tweaked toml for git repo https://github.com/tmineno/gitforum written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tmineno/gitforum on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tmineno/gitforum already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e0e28772c0b361f014457db97f44e943eea2f2633222567fc98791bff7347694
[INFO] running `Command { std: "docker" "start" "-a" "e0e28772c0b361f014457db97f44e943eea2f2633222567fc98791bff7347694", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e0e28772c0b361f014457db97f44e943eea2f2633222567fc98791bff7347694", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e0e28772c0b361f014457db97f44e943eea2f2633222567fc98791bff7347694", kill_on_drop: false }`
[INFO] [stdout] e0e28772c0b361f014457db97f44e943eea2f2633222567fc98791bff7347694
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6ff310f8d1537c9b60db074c990653e90d8baf1d9a51362e38ea544b0e02017b
[INFO] running `Command { std: "docker" "start" "-a" "6ff310f8d1537c9b60db074c990653e90d8baf1d9a51362e38ea544b0e02017b", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling pulldown-cmark v0.13.1
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling git-forum v3.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.88s
[INFO] running `Command { std: "docker" "inspect" "6ff310f8d1537c9b60db074c990653e90d8baf1d9a51362e38ea544b0e02017b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6ff310f8d1537c9b60db074c990653e90d8baf1d9a51362e38ea544b0e02017b", kill_on_drop: false }`
[INFO] [stdout] 6ff310f8d1537c9b60db074c990653e90d8baf1d9a51362e38ea544b0e02017b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] df2f0cb8ab061a25d0e3c98b37e9dc550966cfa516a781456ccdcfd44f46b4c2
[INFO] running `Command { std: "docker" "start" "-a" "df2f0cb8ab061a25d0e3c98b37e9dc550966cfa516a781456ccdcfd44f46b4c2", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling git-forum v3.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 52.39s
[INFO] running `Command { std: "docker" "inspect" "df2f0cb8ab061a25d0e3c98b37e9dc550966cfa516a781456ccdcfd44f46b4c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df2f0cb8ab061a25d0e3c98b37e9dc550966cfa516a781456ccdcfd44f46b4c2", kill_on_drop: false }`
[INFO] [stdout] df2f0cb8ab061a25d0e3c98b37e9dc550966cfa516a781456ccdcfd44f46b4c2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 52dd8d1d963fb2fb8a6e73b87012f9f703597211d2665bb8cbc2d9982e608f99
[INFO] running `Command { std: "docker" "start" "-a" "52dd8d1d963fb2fb8a6e73b87012f9f703597211d2665bb8cbc2d9982e608f99", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.33s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/git_forum-401a6bfc75f9d511)
[INFO] [stdout] 
[INFO] [stdout] running 466 tests
[INFO] [stdout] test internal::clock::tests::fixed_clock_returns_same_instant ... ok
[INFO] [stdout] test internal::clock::tests::step_clock_advances ... ok
[INFO] [stdout] test internal::actor::tests::actor_serialize_roundtrip ... ok
[INFO] [stdout] test internal::commands::brief::tests::json_schema_has_required_fields ... ok
[INFO] [stdout] test internal::commands::brief::tests::plaintext_minimal_thread_renders ... ok
[INFO] [stdout] test internal::commands::diff::tests::parse_rev_zero_alone_fails ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_at_marker_form ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_at_marker_rejects_short_or_all_digits ... ok
[INFO] [stdout] test internal::commands::brief::tests::node_counts_collapse_legacy_variants ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_id_after_punctuation ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_dedup ... ok
[INFO] [stdout] test internal::commands::diff::tests::parse_rev_out_of_range ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_at_marker_in_parens ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_mixed_legacy_and_opaque ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_multiple_ids ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_at_marker_dedup_and_mixed_with_legacy ... ok
[INFO] [stdout] test internal::commands::diff::tests::parse_rev_range ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_ignores_unknown_prefix ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_id_on_newline ... ok
[INFO] [stdout] test internal::commands::diff::tests::parse_rev_single ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_opaque_after_punctuation ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_at_marker_word_boundary ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_at_start_and_end ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_ignores_wrong_digit_count ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_opaque_ask_id ... ok
[INFO] [stdout] test internal::commands::diff::tests::parse_rev_same_fails ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_no_ids ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_opaque_respects_word_boundary ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_respects_word_boundary ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_single_rfc ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_single_issue ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_opaque_id ... ok
[INFO] [stdout] test internal::commands::hook::tests::extract_opaque_rejects_all_digits ... ok
[INFO] [stdout] test internal::commands::hook::tests::install_hook_refuses_overwrite_without_force ... ok
[INFO] [stdout] test internal::commands::hook::tests::install_post_checkout_hook_creates_executable ... ok
[INFO] [stdout] test internal::commands::hook::tests::strip_comments_custom_char ... ok
[INFO] [stdout] test internal::commands::hook::tests::install_commit_msg_hook_creates_executable ... ok
[INFO] [stdout] test internal::commands::hook::tests::strip_comments_default ... ok
[INFO] [stdout] test internal::commands::hook::tests::strip_comments_scissors ... ok
[INFO] [stdout] test internal::commands::hook::tests::strip_comments_preserves_non_comment_hash ... ok
[INFO] [stdout] test internal::commands::hook::tests::install_hook_is_idempotent ... ok
[INFO] [stdout] test internal::commands::hook::tests::uninstall_commit_msg_hook_removes_file ... ok
[INFO] [stdout] test internal::commands::hook::tests::uninstall_refuses_foreign_hook ... ok
[INFO] [stdout] test internal::commands::ls::tests::ls_empty ... ok
[INFO] [stdout] test internal::commands::hook::tests::install_hook_overwrites_with_force ... ok
[INFO] [stdout] test internal::commands::ls::tests::parse_columns_rejects_empty_spec ... ok
[INFO] [stdout] test internal::commands::ls::tests::parse_columns_rejects_unknown ... ok
[INFO] [stdout] test internal::commands::ls::tests::parse_columns_round_trip ... ok
[INFO] [stdout] test internal::commands::migrate::tests::bare_token_for_passthrough_already_bare ... ok
[INFO] [stdout] test internal::commands::migrate::tests::bare_token_for_sequential_yields_legal_bare_token ... ok
[INFO] [stdout] test internal::commands::migrate::tests::bare_token_for_pinned_v2_mappings ... ok
[INFO] [stdout] test internal::commands::migrate::tests::bare_token_for_strips_opaque_prefix ... ok
[INFO] [stdout] test internal::commands::push::tests::summary_render_includes_all_counts ... ok
[INFO] [stdout] test internal::commands::show::tests::render_tree_lists_implements_children ... ok
[INFO] [stdout] test internal::commands::migrate::tests::tree_safe_node_id_strips_actor_namespace_slash ... ok
[INFO] [stdout] test internal::commands::show::tests::render_tree_no_children_shows_marker ... ok
[INFO] [stdout] test internal::config::tests::commit_identity_absent_when_section_missing ... ok
[INFO] [stdout] test internal::commands::show::tests::what_next_mode_includes_operation_checks ... ok
[INFO] [stdout] test internal::commands::show::tests::state_diagram_filters_by_category ... ok
[INFO] [stdout] test internal::commands::ls::tests::ls_keeps_branch_column_when_filter_active ... ok
[INFO] [stdout] test internal::config::tests::repo_paths_construction ... ok
[INFO] [stdout] test internal::config::tests::repo_paths_with_explicit_git_dir ... ok
[INFO] [stdout] test internal::commands::brief::tests::plaintext_does_not_name_linked_threads ... ok
[INFO] [stdout] test internal::commands::show::tests::status_mode_lists_open_items ... ok
[INFO] [stdout] test internal::editor::tests::resolve_editor_defaults_to_vi ... ok
[INFO] [stdout] test internal::editor::tests::strip_comments_preserves_non_comment_lines ... ok
[INFO] [stdout] test internal::editor::tests::strip_comments_preserves_inline_hash ... ok
[INFO] [stdout] test internal::editor::tests::strip_comments_removes_hash_lines ... ok
[INFO] [stdout] test internal::editor::tests::strip_comments_trims_trailing_whitespace ... ok
[INFO] [stdout] test internal::error::tests::diagnostic_display ... ok
[INFO] [stdout] test internal::error::tests::error_display ... ok
[INFO] [stdout] test internal::editor::tests::strip_comments_handles_mixed_content ... ok
[INFO] [stdout] test internal::editor::tests::strip_comments_returns_empty_for_all_comments ... ok
[INFO] [stdout] test internal::evidence::tests::evidence_kind_roundtrip ... ok
[INFO] [stdout] test internal::evidence::tests::evidence_kind_unknown_returns_err ... ok
[INFO] [stdout] test internal::evidence::tests::evidence_record_rejects_legacy_field_names ... ok
[INFO] [stdout] test internal::evidence::tests::evidence_record_round_trip ... ok
[INFO] [stdout] test internal::evidence::tests::evidence_record_uses_spec_keys ... ok
[INFO] [stdout] test internal::commands::ls::tests::ls_drops_uniformly_empty_branch_column ... ok
[INFO] [stdout] test internal::evidence::tests::evidence_record_round_trip_empty ... ok
[INFO] [stdout] test internal::evidence::tests::evidence_serialize_omits_evidence_id ... ok
[INFO] [stdout] test internal::commands::ls::tests::ls_columns_pin_overrides_auto_hide ... ok
[INFO] [stdout] test internal::git_ops::git_error_annotation_tests::passes_unrelated_errors_through_unchanged ... ok
[INFO] [stdout] test internal::id::tests::display_thread_id_prepends_marker_for_bare_token ... ok
[INFO] [stdout] test internal::id::tests::display_thread_id_preserves_legacy_form ... ok
[INFO] [stdout] test internal::git_ops::git_error_annotation_tests::annotates_unable_to_create_temporary_file ... ok
[INFO] [stdout] test internal::git_ops::git_error_annotation_tests::annotates_no_space_left ... ok
[INFO] [stdout] test internal::id::tests::sequential_id_generator ... ok
[INFO] [stdout] test internal::id::tests::strip_thread_marker_strips_leading_at ... ok
[INFO] [stdout] test internal::id::tests::ulid_generator_produces_unique_ids ... ok
[INFO] [stdout] test internal::id::tests::strip_thread_marker_only_strips_one ... ok
[INFO] [stdout] test internal::id_alloc::tests::alloc_bare_thread_id_format ... ok
[INFO] [stdout] test internal::id_alloc::tests::base36_encode_deterministic ... ok
[INFO] [stdout] test internal::id_alloc::tests::alloc_bare_thread_id_matches_kind_prefixed_token ... ok
[INFO] [stdout] test internal::id_alloc::tests::alloc_id_format_legacy ... ok
[INFO] [stdout] test internal::id_alloc::tests::different_nonces_produce_different_ids ... ok
[INFO] [stdout] test internal::id_alloc::tests::alloc_id_format_opaque ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_opaque_id_rejects_sequential ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_opaque_id_valid ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_bare_token_valid ... ok
[INFO] [stdout] test internal::commands::ls::tests::ls_contains_all_threads ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_sequential_id_rejects_opaque ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_sequential_id_valid ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_valid_thread_id_accepts_bare_token ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_valid_thread_id_both_formats ... ok
[INFO] [stdout] test internal::id_alloc::tests::nonce_randomness_produces_unique_ids ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_bare_token_rejects ... ok
[INFO] [stdout] test internal::id_alloc::tests::is_opaque_id_rejects_invalid ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::facet_set_tags_accumulate_across_events ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::facet_set_tags_add_then_remove_within_event ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::facet_set_first_lifecycle_wins ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::facet_set_tags_remove_unknown_is_noop ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::facet_set_lifecycle_optional ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::lifecycle_accessor_falls_back_to_kind ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::lifecycle_accessor_prefers_explicit_facet_set ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_create_then_state ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_empty_events_fails ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_issue_initial_status ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_lenient_unchanged_under_strict_failures ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_non_create_first_fails ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_single_create ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_flags_edit_missing_body ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_flags_illegal_transition_for_lifecycle ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_clean_for_legal_transition ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_clean_thread_yields_no_issues ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_flags_lifecycle_reset ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_flags_resolve_on_unknown_node ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_flags_state_event_missing_new_state ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_idempotent_lifecycle_reset_is_clean ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_idempotent_state_does_not_flag ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_no_self_heal_when_terminal_status_differs ... ok
[INFO] [stdout] test internal::commands::show::tests::single_line_preview_handles_multibyte_text ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_review_to_withdrawn_cannot_self_heal ... ok
[INFO] [stdout] test internal::commands::show::tests::show_with_policy_includes_next_and_diagram ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_self_heal_suppresses_invalid_transition_after_corrective_tail ... ok
[INFO] [stdout] test internal::legacy::event::tests::event_json_omits_none_fields ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_no_self_heal_without_corrective_tail ... ok
[INFO] [stdout] test internal::legacy::event::tests::event_serialize_roundtrip ... ok
[INFO] [stdout] test internal::legacy::event::tests::facet_set_event_empty_payload_serializes_minimally ... ok
[INFO] [stdout] test internal::legacy::event::tests::find_path_accepts_legacy_state_names ... ok
[INFO] [stdout] test internal::legacy::event::tests::facet_set_event_roundtrip ... ok
[INFO] [stdout] test internal::legacy::event::tests::find_path_bogus_target_returns_none ... ok
[INFO] [stdout] test internal::legacy::event::tests::find_path_execution_open_to_done_picks_shortest ... ok
[INFO] [stdout] test internal::legacy::event::tests::find_path_proposal_draft_to_review ... ok
[INFO] [stdout] test internal::legacy::event::tests::find_path_unreachable_returns_none ... ok
[INFO] [stdout] test internal::legacy::event::tests::find_path_proposal_draft_to_done ... ok
[INFO] [stdout] test internal::legacy::event::tests::legacy_state_names_are_normalized_in_queries ... ok
[INFO] [stdout] test internal::legacy::event::tests::lifecycle_initial_states ... ok
[INFO] [stdout] test internal::legacy::event::tests::migrate_drops_withdrawn_for_execution ... ok
[INFO] [stdout] test internal::legacy::event::tests::node_type_canonical_collapses_legacy_to_comment ... ok
[INFO] [stdout] test internal::legacy::event::tests::find_path_same_state_returns_empty ... ok
[INFO] [stdout] test internal::legacy::event::tests::node_type_parses_canonical_and_legacy ... ok
[INFO] [stdout] test internal::legacy::event::tests::node_type_legacy_subtype_label ... ok
[INFO] [stdout] test internal::legacy::event::tests::node_type_serialize_roundtrip_canonical ... ok
[INFO] [stdout] test internal::legacy::event::tests::normalize_known_legacy_state_names ... ok
[INFO] [stdout] test internal::legacy::event::tests::project_facetset_passes_through_unparsed_lifecycle ... ok
[INFO] [stdout] test internal::legacy::event::tests::project_create_carries_payload_and_meta ... ok
[INFO] [stdout] test internal::legacy::event::tests::project_link_validates_either_evidence_or_target_pair ... ok
[INFO] [stdout] test internal::legacy::event::tests::project_say_requires_node_type_then_body ... ok
[INFO] [stdout] test internal::legacy::event::tests::round_trip_every_1x_kind_state_lands_in_lifecycle_allowed_set ... ok
[INFO] [stdout] test internal::legacy::event::tests::stored_event_roundtrip_through_projection ... ok
[INFO] [stdout] test internal::legacy::event::tests::thread_kind_initial_status ... ok
[INFO] [stdout] test internal::legacy::event::tests::thread_status_parse_canonical_round_trip ... ok
[INFO] [stdout] test internal::legacy::event::tests::thread_status_display_matches_as_str ... ok
[INFO] [stdout] test internal::legacy::event::tests::thread_status_parse_strict_rejects_legacy ... ok
[INFO] [stdout] test internal::legacy::event::tests::unified_execution_excludes_withdrawn ... ok
[INFO] [stdout] test internal::legacy::event::tests::unified_proposal_excludes_working ... ok
[INFO] [stdout] test internal::legacy::event::tests::unified_proposal_typical_path ... ok
[INFO] [stdout] test internal::legacy::event::tests::unified_record_excludes_review_and_working ... ok
[INFO] [stdout] test internal::legacy::event::tests::thread_status_parse_lenient_folds_legacy ... ok
[INFO] [stdout] test internal::legacy::event::tests::thread_status_parse_lenient_unknown_is_none ... ok
[INFO] [stdout] test internal::legacy::event::tests::valid_targets_execution_from_open ... ok
[INFO] [stdout] test internal::legacy::event::tests::valid_targets_proposal_from_draft ... ok
[INFO] [stdout] test internal::legacy::event::tests::validate_accepts_normal_event ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_legacy_state_synonyms_remain_legal ... ok
[INFO] [stdout] test internal::legacy::event::tests::validate_rejects_oversized_actor ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::replay_strict_flags_invalid_lifecycle_value ... ok
[INFO] [stdout] test internal::legacy::event::tests::validate_tag_grammar ... ok
[INFO] [stdout] test internal::legacy::event::tests::validate_rejects_oversized_title ... ok
[INFO] [stdout] test internal::config::tests::commit_identity_deserializes_from_toml ... ok
[INFO] [stdout] test internal::config::tests::commit_identity_partial_name_only ... ok
[INFO] [stdout] test internal::config::tests::load_local_config_missing_file_returns_default ... ok
[INFO] [stdout] test internal::legacy::v1::tests::canonical_collapses_legacy_to_comment ... ok
[INFO] [stdout] test internal::legacy::v1::tests::lifecycle_for_legacy_kind_matches_kind_presets ... ok
[INFO] [stdout] test internal::legacy::v1::tests::migrate_remaps_withdrawn_for_execution_and_record ... ok
[INFO] [stdout] test internal::legacy::chain_replay::tests::facet_set_tags_add_dedupes ... ok
[INFO] [stdout] test internal::legacy::workflow::tests::preset_lookup_finds_aliases ... ok
[INFO] [stdout] test internal::legacy::workflow::tests::shorthand_close_rejected_on_proposal ... ok
[INFO] [stdout] test internal::legacy::v1::tests::normalize_passes_through_canonical ... ok
[INFO] [stdout] test internal::legacy::workflow::tests::every_thread_kind_has_a_primary_preset ... ok
[INFO] [stdout] test internal::legacy::v1::tests::normalize_folds_known_aliases ... ok
[INFO] [stdout] test internal::lint_emit::tests::distinct_keys_emit_independently ... ok
[INFO] [stdout] test internal::legacy::v1::tests::legacy_subtype_label_round_trip ... ok
[INFO] [stdout] test internal::lint_emit::tests::emits_repo_relative_path_when_inside_repo ... ok
[INFO] [stdout] test internal::lint_emit::tests::falls_back_to_absolute_when_outside_repo ... ok
[INFO] [stdout] test internal::lint_emit::tests::no_source_emits_bare_message ... ok
[INFO] [stdout] test internal::legacy::workflow::tests::every_lifecycle_has_a_data_row ... ok
[INFO] [stdout] test internal::legacy::workflow::tests::shorthand_unknown_verb ... ok
[INFO] [stdout] test internal::init::tests::default_policy_parses_under_v3_parser ... ok
[INFO] [stdout] test internal::legacy::event::tests::validate_rejects_oversized_body ... ok
[INFO] [stdout] test internal::commands::ls::tests::ls_keeps_branch_when_one_row_has_it ... ok
[INFO] [stdout] test internal::legacy::workflow::tests::shorthand_open_works_for_every_lifecycle ... ok
[INFO] [stdout] test internal::lint_emit::tests::suppresses_repeat_in_same_process ... ok
[INFO] [stdout] test internal::lint_emit::tests::verbose_flag_disables_throttle ... ok
[INFO] [stdout] test internal::node::tests::node_record_rejects_unknown_status ... ok
[INFO] [stdout] test internal::node::tests::node_record_rejects_v2_field_names ... ok
[INFO] [stdout] test internal::node::tests::node_record_omits_unset_optionals ... ok
[INFO] [stdout] test internal::node::tests::node_record_uses_spec_keys ... ok
[INFO] [stdout] test internal::lint_emit::tests::verbose_bypasses_disk_cache ... ok
[INFO] [stdout] test internal::node::tests::node_record_round_trip_with_optionals ... ok
[INFO] [stdout] test internal::lint_emit::tests::on_disk_cache_suppresses_across_processes ... ok
[INFO] [stdout] test internal::commands::hook::tests::fix_index_no_staged_files ... ok
[INFO] [stdout] test internal::lint_emit::tests::on_disk_cache_expires_after_window ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_no_policy_allows_everything ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_rfc_no_body_returns_error ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_task_no_body_allowed ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_rfc_all_sections_present ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_unknown_category_allows_everything ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_rfc_empty_section_returns_warning ... ok
[INFO] [stdout] test internal::operation_check::tests::check_evidence_allowed ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_rfc_missing_sections_returns_warnings ... ok
[INFO] [stdout] test internal::operation_check::tests::check_create_rfc_empty_body_returns_error ... ok
[INFO] [stdout] test internal::operation_check::tests::check_evidence_absent_section_allows_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_evidence_blocked ... ok
[INFO] [stdout] test internal::node::tests::node_record_round_trip_minimal ... ok
[INFO] [stdout] test internal::operation_check::tests::check_evidence_present_but_empty_denies_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_op_create_dispatches_to_creation_rules ... ok
[INFO] [stdout] test internal::operation_check::tests::check_op_revise_dispatches_to_revise_rules ... ok
[INFO] [stdout] test internal::operation_check::tests::check_revise_body_allowed ... ok
[INFO] [stdout] test internal::operation_check::tests::check_op_evidence_dispatches_to_evidence_rules ... ok
[INFO] [stdout] test internal::operation_check::tests::check_revise_no_policy_allows_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_op_say_dispatches_to_node_rules ... ok
[INFO] [stdout] test internal::operation_check::tests::check_revise_absent_section_allows_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_revise_present_but_empty_node_denies_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_revise_present_but_empty_body_denies_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_evidence_no_policy_allows_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_revise_body_blocked ... ok
[INFO] [stdout] test internal::operation_check::tests::check_say_allowed ... ok
[INFO] [stdout] test internal::operation_check::tests::check_say_no_policy_allows_all ... ok
[INFO] [stdout] test internal::operation_check::tests::check_say_unlisted_state_allows_all ... ok
[INFO] [stdout] test internal::operation_check::tests::evaluate_violations_error_blocks ... ok
[INFO] [stdout] test internal::operation_check::tests::evaluate_violations_force_does_not_bypass_error ... ok
[INFO] [stdout] test internal::operation_check::tests::evaluate_violations_no_violations ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::rfc_initial_status_is_draft ... ok
[INFO] [stdout] test internal::operation_check::tests::evaluate_violations_strict_force_warning_passes ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::built_in_provides_rfc_and_task ... ok
[INFO] [stdout] test internal::operation_check::tests::evaluate_violations_warning_does_not_block ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::task_initial_status_is_open ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::validate_status_accepts_known_pair ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::rfc_done_to_draft_disallowed ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::validate_status_rejects_unknown_category ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::validate_status_rejects_unknown_status ... ok
[INFO] [stdout] test internal::policy::evaluate_tests::check_guards_empty_when_no_rules_for_transition ... ok
[INFO] [stdout] test internal::policy::evaluate_tests::no_open_actions_fails_when_open_action_present ... ok
[INFO] [stdout] test internal::policy::evaluate_tests::no_open_objections_fails_when_open_objection_present ... ok
[INFO] [stdout] test internal::policy::evaluate_tests::check_guards_runs_rules_for_matching_category_transition ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::ignores_comments_mentioning_removed_rules ... ok
[INFO] [stdout] test internal::policy::evaluate_tests::no_open_objections_passes_when_thread_clean ... ok
[INFO] [stdout] test internal::policy::evaluate_tests::one_approval_accepts_any_actor_type ... ok
[INFO] [stdout] test internal::policy::evaluate_tests::one_approval_fails_when_no_approvals ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::accepts_clean_v3_form ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_facet_scoped_guard_on_field ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_one_human_approval ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_requires_field ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_v2_creation_rules_facet_scoped ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_at_least_one_summary ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_v2_array_of_tables_guards ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_v2_creation_rules_kind_keyed ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_v2_evidence_rules ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_v2_node_rules ... ok
[INFO] [stdout] test internal::policy::legacy_detection_tests::rejects_v2_revise_rules ... ok
[INFO] [stdout] test internal::operation_check::tests::check_say_blocked ... ok
[INFO] [stdout] test internal::operation_check::tests::evaluate_violations_strict_warning_blocks ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_initial_status_not_in_statuses ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_at_least_one_summary_rule ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::override_unblocks_previously_invalid_transition ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_one_human_approval_rule ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_duplicate_transition ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_invalid_transition_within_category ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::accepts_built_in_override ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_evidence_status_outside_category ... ok
[INFO] [stdout] test internal::legacy::event::tests::validate_accepts_max_size_fields ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_status_outside_category ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::accepts_custom_category_with_full_definition ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_unknown_category ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_v2_array_of_tables_form ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_v2_evidence_rules_table ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_transition_with_status_outside_statuses ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_revise_status_outside_category ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_v2_facet_scoped_creation_rules ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_partial_definition_override ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::round_trip_clean_v3 ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_v2_node_rules_table ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_v2_revise_rules_table ... ok
[INFO] [stdout] test internal::node::tests::node_record_rejects_non_canonical_type ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::rejects_v2_kind_keyed_creation_rules ... ok
[INFO] [stdout] test internal::publish::exclusion::tests::body_and_nodes_pass_through_unchanged ... ok
[INFO] [stdout] test internal::publish::exclusion::tests::deterministic_across_repeated_application ... ok
[INFO] [stdout] test internal::publish::exclusion::tests::drops_links_outside_the_public_allowlist ... ok
[INFO] [stdout] test internal::publish::exclusion::tests::drops_thread_evidence_outside_the_public_allowlist ... ok
[INFO] [stdout] test internal::publish::exclusion::tests::empty_public_set_drops_all_thread_targets ... ok
[INFO] [stdout] test internal::publish::exclusion::tests::filter_returns_owned_value ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::round_trip_preserves_empty_allow_lists ... ok
[INFO] [stdout] test internal::publish::lint::tests::at_id_form_is_caught ... ok
[INFO] [stdout] test internal::policy::policy_load_tests::round_trip_serialize_parse ... ok
[INFO] [stdout] test internal::publish::lint::tests::bare_token_form_used_when_no_marker ... ok
[INFO] [stdout] test internal::publish::lint::tests::empty_private_set_yields_no_warnings ... ok
[INFO] [stdout] test internal::publish::lint::tests::at_id_takes_priority_over_bare_token ... ok
[INFO] [stdout] test internal::publish::lint::tests::full_ref_does_not_double_match_as_bare ... ok
[INFO] [stdout] test internal::publish::lint::tests::determinism_same_input_same_output ... ok
[INFO] [stdout] test internal::publish::lint::tests::full_ref_form_is_caught ... ok
[INFO] [stdout] test internal::publish::lint::tests::longer_runs_skipped ... ok
[INFO] [stdout] test internal::publish::lint::tests::labeled_refs_marker_caught ... ok
[INFO] [stdout] test internal::publish::lint::tests::render_format_matches_rfc_one_liner ... ok
[INFO] [stdout] test internal::publish::lint::tests::nodes_are_scanned_too ... ok
[INFO] [stdout] test internal::publish::lint::tests::underscored_marker_does_not_match_label ... ok
[INFO] [stdout] test internal::publish::lint::tests::unknown_bare_tokens_do_not_warn ... ok
[INFO] [stdout] test internal::publish::lint::tests::labeled_refs_with_list_catches_each_entry ... ok
[INFO] [stdout] test internal::policy::category_registry_tests::rfc_draft_to_open_allowed ... ok
[INFO] [stdout] test internal::commands::hook::tests::fix_index_repairs_missing_blob ... ok
[INFO] [stdout] test internal::commands::hook::tests::fix_index_healthy_repo ... ok
[INFO] [stdout] test internal::init::tests::default_policy_matches_fixture ... ok
[INFO] [stdout] test internal::publish::commit::tests::tree_equivalence_across_clones_in_a_single_repo ... ok
[INFO] [stdout] test internal::refs::tests::extract_bare_thread_id_round_trips ... ok
[INFO] [stdout] test internal::refs::tests::extract_thread_id ... ok
[INFO] [stdout] test internal::refs::tests::thread_ref_accepts_bare_token ... ok
[INFO] [stdout] test internal::refs::tests::thread_ref_format ... ok
[INFO] [stdout] test internal::snapshot::history::tests::entries_touching_filters_by_path_prefix ... ok
[INFO] [stdout] test internal::snapshot::history::tests::parse_link_add ... ok
[INFO] [stdout] test internal::snapshot::history::tests::parse_node_add ... ok
[INFO] [stdout] test internal::snapshot::history::tests::parse_state_transition ... ok
[INFO] [stdout] test internal::snapshot::history::tests::parse_thread_create ... ok
[INFO] [stdout] test internal::snapshot::history::tests::raw_log_format_round_trips ... ok
[INFO] [stdout] test internal::publish::commit::tests::build_published_tree_omits_legacy ... ok
[INFO] [stdout] test internal::snapshot::history::tests::render_table_has_header_and_one_row_per_entry ... ok
[INFO] [stdout] test internal::snapshot::history::tests::unrecognized_subject_falls_through ... ok
[INFO] [stdout] test internal::snapshot::link::tests::key_fidelity_uses_spec_keys_only ... ok
[INFO] [stdout] test internal::snapshot::link::tests::rejects_legacy_field_names ... ok
[INFO] [stdout] test internal::snapshot::link::tests::parses_multiple_links_array ... ok
[INFO] [stdout] test internal::snapshot::link::tests::round_trip_single_link ... ok
[INFO] [stdout] test internal::snapshot::list::tests::category_lifecycle_mirrors_v2_defaults ... ok
[INFO] [stdout] test internal::snapshot::link::tests::round_trip_empty ... ok
[INFO] [stdout] test internal::thread::tests::resolve_ambiguous_shows_candidates ... ok
[INFO] [stdout] test internal::thread::tests::resolve_bare_token_exact_match ... ok
[INFO] [stdout] test internal::thread::tests::resolve_bare_token_prefix_match ... ok
[INFO] [stdout] test internal::thread::tests::resolve_case_insensitive_ambiguous_shows_did_you_mean ... ok
[INFO] [stdout] test internal::thread::tests::resolve_case_insensitive_exact ... ok
[INFO] [stdout] test internal::thread::tests::resolve_case_insensitive_prefix ... ok
[INFO] [stdout] test internal::thread::tests::resolve_case_insensitive_token ... ok
[INFO] [stdout] test internal::thread::tests::resolve_exact_match ... ok
[INFO] [stdout] test internal::thread::tests::resolve_not_found_includes_hint ... ok
[INFO] [stdout] test internal::thread::tests::resolve_strips_at_marker_before_matching ... ok
[INFO] [stdout] test internal::thread::tests::resolve_prefix_match ... ok
[INFO] [stdout] test internal::thread::tests::resolve_token_only_match ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::missing_schema_version_rejected_as_snapshot_schema_unsupported ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::omits_unset_optionals ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::round_trip_minimal ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::schema_version_mismatch_rejected ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::visibility_absent_means_private ... ok
[INFO] [stdout] test internal::publish::commit::tests::published_commit_is_parentless ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::round_trip_with_optionals ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::visibility_round_trip_private_explicit ... ok
[INFO] [stdout] test internal::tui::markdown::tests::code_block_still_renders_green ... ok
[INFO] [stdout] test internal::tui::markdown::tests::heading_still_renders_bold_cyan ... ok
[INFO] [stdout] test internal::tui::markdown::tests::horizontal_rule_respects_width ... ok
[INFO] [stdout] test internal::tui::markdown::tests::image_renders_placeholder ... ok
[INFO] [stdout] test internal::tui::markdown::tests::inline_code_still_renders_green ... ok
[INFO] [stdout] test internal::tui::markdown::tests::link_shows_text_and_url ... ok
[INFO] [stdout] test internal::tui::markdown::tests::list_still_renders_bullets ... ok
[INFO] [stdout] test internal::tui::markdown::tests::loose_ordered_list_keeps_marker_with_text ... ok
[INFO] [stdout] test internal::thread::thread_snapshot_tests::visibility_round_trip_public ... ok
[INFO] [stdout] test internal::tui::markdown::tests::nested_ordered_inside_unordered ... ok
[INFO] [stdout] test internal::tui::markdown::tests::constrain_column_widths_proportional ... ok
[INFO] [stdout] test internal::tui::markdown::tests::ordered_list_preserves_numeric_markers ... ok
[INFO] [stdout] test internal::tui::markdown::tests::table_fits_within_width ... ok
[INFO] [stdout] test internal::tui::markdown::tests::table_has_separator_after_header ... ok
[INFO] [stdout] test internal::tui::markdown::tests::table_header_is_bold ... ok
[INFO] [stdout] test internal::tui::markdown::tests::table_renders_aligned_columns ... ok
[INFO] [stdout] test internal::tui::markdown::tests::wide_table_wraps_within_width ... ok
[INFO] [stdout] test internal::tui::persist::tests::apply_to_app_clamps_split ... ok
[INFO] [stdout] test internal::tui::markdown::tests::strikethrough_has_crossed_out_modifier ... ok
[INFO] [stdout] test internal::tui::markdown::tests::ordered_list_with_custom_start ... ok
[INFO] [stdout] test internal::tui::persist::tests::apply_to_app_restores_display_settings ... ok
[INFO] [stdout] test internal::tui::persist::tests::apply_to_app_list_selected_clamped_to_visible ... ok
[INFO] [stdout] test internal::tui::persist::tests::corrupted_file_returns_none ... ok
[INFO] [stdout] test internal::tui::persist::tests::from_app_captures_list_view ... ok
[INFO] [stdout] test internal::tui::persist::tests::from_app_captures_node_detail_view ... ok
[INFO] [stdout] test internal::tui::persist::tests::from_app_form_view_falls_back_to_list ... ok
[INFO] [stdout] test internal::tui::persist::tests::load_missing_file_returns_none ... ok
[INFO] [stdout] test internal::tui::persist::tests::from_app_captures_thread_detail_view ... ok
[INFO] [stdout] test internal::tui::persist::tests::partial_toml_loads_with_defaults ... ok
[INFO] [stdout] test internal::tui::persist::tests::roundtrip_default_state ... ok
[INFO] [stdout] test internal::tui::persist::tests::roundtrip_with_data ... ok
[INFO] [stdout] test internal::tui::persist::tests::sort_column_legacy_lifecycle_falls_back_to_updated ... ok
[INFO] [stdout] test internal::tui::persist::tests::sort_column_roundtrip ... ok
[INFO] [stdout] test internal::tui::persist::tests::unknown_sort_column_defaults_to_updated ... ok
[INFO] [stdout] test internal::tui::persist::tests::v1_filter_kinds_translates_to_v2_lifecycles_and_tags ... ok
[INFO] [stdout] test internal::tui::persist::tests::v1_on_disk_to_v2_roundtrip ... ok
[INFO] [stdout] test internal::tui::persist::tests::save_and_load_roundtrip ... ok
[INFO] [stdout] test internal::tui::persist::tests::save_and_load_via_app ... ok
[INFO] [stdout] test internal::commands::hook::tests::fix_index_repairs_missing_head_tree_blob ... ok
[INFO] [stdout] test internal::publish::commit::tests::delete_published_when_present_and_absent ... ok
[INFO] [stdout] test internal::publish::commit::tests::updates_reset_to_parentless ... ok
[INFO] [stdout] test internal::tui::tests::build_tree_entries_orders_siblings_chronologically ... ok
[INFO] [stdout] test internal::tui::tests::body_pane_standalone_leaf_counts_as_one_conversation ... ok
[INFO] [stdout] test internal::tui::tests::click_column_header_sorts_list ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::lint_pass_does_not_write ... ok
[INFO] [stdout] test internal::tui::tests::create_link_view_shows_auto_resolvable_targets ... ok
[INFO] [stdout] test internal::tui::tests::body_pane_section_headers_are_bold_in_markdown_mode ... ok
[INFO] [stdout] test internal::tui::tests::body_pane_preserves_non_section_content ... ok
[INFO] [stdout] test internal::tui::tests::create_node_view_shows_form_fields ... ok
[INFO] [stdout] test internal::publish::commit::tests::write_published_creates_then_skips_then_updates ... ok
[INFO] [stdout] test internal::tui::tests::body_pane_zero_nodes_elides_conversation_section ... ok
[INFO] [stdout] test internal::tui::tests::edit_node_body_supports_multiline_text ... ok
[INFO] [stdout] test internal::tui::tests::create_thread_view_shows_form_fields ... ok
[INFO] [stdout] test internal::tui::tests::edit_thread_body_supports_multiline_text ... ok
[INFO] [stdout] test internal::tui::tests::detail_view_shows_content ... ok
[INFO] [stdout] test internal::tui::tests::enter_on_body_field_opens_multiline_editor ... ok
[INFO] [stdout] test internal::tui::tests::enter_on_thread_body_field_opens_multiline_editor ... ok
[INFO] [stdout] test internal::tui::tests::enter_on_thread_lifecycle_field_does_not_submit ... ok
[INFO] [stdout] test internal::tui::tests::enter_on_type_field_does_not_submit ... ok
[INFO] [stdout] test internal::tui::tests::edit_node_body_view_shows_editor ... ok
[INFO] [stdout] test internal::tui::tests::edit_thread_body_view_shows_editor ... ok
[INFO] [stdout] test internal::tui::tests::filter_bar_apply_sets_lifecycle_and_status ... ok
[INFO] [stdout] test internal::tui::tests::filter_bar_cancel_preserves_existing_filter ... ok
[INFO] [stdout] test internal::tui::tests::filter_bar_clear_resets_both_dimensions ... ok
[INFO] [stdout] test internal::tui::tests::filter_bar_open_reflects_current_filter ... ok
[INFO] [stdout] test internal::tui::tests::filter_bar_toggle_checkbox ... ok
[INFO] [stdout] test internal::tui::tests::filter_multi_select_lifecycles ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::commit_plan_realises_publish_entries ... ok
[INFO] [stdout] test internal::tui::tests::error_flash_renders_overlay ... ok
[INFO] [stdout] test internal::tui::tests::list_row_shows_tag_chip_with_at_marker ... ok
[INFO] [stdout] test internal::tui::tests::list_view_contains_thread_id ... ok
[INFO] [stdout] test internal::tui::tests::list_view_contains_title ... ok
[INFO] [stdout] test internal::tui::tests::create_thread_form_invalid_tag_blocks_submit ... ok
[INFO] [stdout] test internal::tui::tests::list_view_shows_thread_count ... ok
[INFO] [stdout] test internal::tui::tests::list_view_filter_hides_non_matching ... ok
[INFO] [stdout] test internal::tui::tests::move_down_wraps_at_end ... ok
[INFO] [stdout] test internal::tui::tests::move_node_down_stops_at_end ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::orphan_published_ref_is_withdrawal_candidate ... ok
[INFO] [stdout] test internal::tui::tests::single_line_preview_handles_multibyte_text ... ok
[INFO] [stdout] test internal::tui::tests::node_detail_view_shows_node_body ... ok
[INFO] [stdout] test internal::tui::tests::mouse_wheel_scrolls_thread_body ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::first_run_creates_published_for_public_only ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::second_run_skips_locally_but_still_emits_refspec ... ok
[INFO] [stdout] test internal::tui::tests::thread_detail_arrow_keys_scroll_body ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::exclusion_drops_links_to_unknown_targets ... ok
[INFO] [stdout] test internal::tui::tests::to_error_flash_includes_thread_hint ... ok
[INFO] [stdout] test internal::tui::tests::to_error_flash_no_hint_on_list_view ... ok
[INFO] [stdout] test internal::tui::tests::visible_threads_filters_by_lifecycle_and_status ... ok
[INFO] [stdout] test internal::tui::tests::visible_threads_filters_by_status ... ok
[INFO] [stdout] test internal::tui::tests::thread_detail_view_shows_nodes_table ... ok
[INFO] [stdout] test internal::tui::tests::mouse_single_click_selects_row ... ok
[INFO] [stdout] test internal::tui::tests::mouse_double_click_opens_thread_detail ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::flipping_public_to_private_yields_withdraw ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::lint_warnings_propagate_to_plan ... ok
[INFO] [stdout] test internal::tui::tests::create_thread_form_non_preset_writes_tags_in_snapshot ... ok
[INFO] [stdout] test internal::tui::tests::submit_create_thread_creates_thread_and_opens_detail ... ok
[INFO] [stdout] test internal::tui::tests::create_thread_form_execution_bug_writes_snapshot ... ok
[INFO] [stdout] test internal::tui::tests::submit_create_link_from_thread_adds_link_and_returns_to_thread_detail ... ok
[INFO] [stdout] test internal::tui::tests::create_node_form_default_writes_comment ... ok
[INFO] [stdout] test internal::publish::orchestrate::tests::refspec_set_combines_pushes_and_deletes ... ok
[INFO] [stdout] test internal::tui::tests::submit_create_node_adds_node_and_keeps_thread_detail ... ok
[INFO] [stdout] test internal::tui::tests::mouse_click_on_thread_submit_creates_thread ... ok
[INFO] [stdout] test internal::tui::tests::submit_create_link_from_node_returns_to_node_detail ... ok
[INFO] [stdout] test internal::tui::tests::apply_node_status_action_updates_node_detail ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/git_forum-b579b6290366595f)
[INFO] [stdout] test result: ok. 466 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_branch_scope_test.rs (/opt/rustwide/target/debug/deps/cli_branch_scope_test-f45ab8c689759125)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test thread_new_can_bind_branch_scope ... ok
[INFO] [stdout] test branch_bind_and_clear_update_thread_scope ... ok
[INFO] [stdout] test issue_ls_can_filter_by_branch ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_bulk_node_test.rs (/opt/rustwide/target/debug/deps/cli_bulk_node_test-d73dfe3ee3ca30d3)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test resolve_node_ids_across_threads_errors ... ok
[INFO] [stdout] test reopen_without_node_ids_is_rejected ... ok
[INFO] [stdout] test resolve_with_only_node_id_succeeds ... ok
[INFO] [stdout] test retract_with_only_node_id_succeeds ... ok
[INFO] [stdout] test bulk_retract_reports_failures_inline ... ok
[INFO] [stdout] test thread_reopen_via_issue_subcommand ... ok
[INFO] [stdout] test single_node_id_still_works ... ok
[INFO] [stdout] test resolve_with_wrong_thread_explicit_form_errors_with_hint ... ok
[INFO] [stdout] test retype_with_only_node_id_succeeds ... ok
[INFO] [stdout] test reopen_with_only_node_id_succeeds ... ok
[INFO] [stdout] test retract_multiple_nodes ... ok
[INFO] [stdout] test resolve_multiple_nodes ... ok
[INFO] [stdout] test reopen_multiple_nodes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_canonical_equiv_test.rs (/opt/rustwide/target/debug/deps/cli_canonical_equiv_test-76198990038324ff)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test pend_shorthand_equals_state_pending ... ok
[INFO] [stdout] test propose_shorthand_equals_state_proposed ... ok
[INFO] [stdout] test close_shorthand_equals_state_closed ... ok
[INFO] [stdout] test reject_shorthand_equals_state_rejected ... ok
[INFO] [stdout] test objection_shorthand_equals_node_add_objection ... ok
[INFO] [stdout] test accept_shorthand_equals_state_accepted ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.39s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_clone_test.rs (/opt/rustwide/target/debug/deps/cli_clone_test-9625b68f9ecd1d5e)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test legacy_wildcard_is_recognized_as_having_forum_refspec ... ok
[INFO] [stdout] test init_public_only_skips_threads_refspec ... ok
[INFO] [stdout] test init_auto_push_configures_published_only_push_refspec ... ok
[INFO] [stdout] test init_public_only_strips_legacy_wildcard ... ok
[INFO] [stdout] test init_adds_refspec_for_existing_remote ... ok
[INFO] [stdout] test doctor_ok_when_no_remotes ... ok
[INFO] [stdout] test init_fetches_forum_refs_from_remote ... ok
[INFO] [stdout] test init_reports_fetched_thread_count ... ok
[INFO] [stdout] test doctor_warns_on_missing_refspec ... ok
[INFO] [stdout] test init_refspec_is_idempotent ... ok
[INFO] [stdout] test doctor_detects_fresh_clone_signature ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_diff_test.rs (/opt/rustwide/target/debug/deps/cli_diff_test-0f4a8d72eb30a7d6)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test diff_no_revisions_shows_message ... ok
[INFO] [stdout] test diff_empty_create_body_vs_first_revision ... ok
[INFO] [stdout] test diff_default_shows_latest_vs_previous ... ok
[INFO] [stdout] test diff_rev_single ... ok
[INFO] [stdout] test diff_rev_range ... ok
[INFO] [stdout] test diff_headers_show_body_not_temp_paths ... ok
[INFO] [stdout] test diff_invalid_rev_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_doctor_publish_test.rs (/opt/rustwide/target/debug/deps/cli_doctor_publish_test-9ba5df5e767c4c01)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test auth_without_published_emits_info_advisory ... ok
[INFO] [stdout] test stale_published_for_orphan_ref_warns ... ok
[INFO] [stderr]      Running tests/cli_edit_test.rs (/opt/rustwide/target/debug/deps/cli_edit_test-edcbd9b6a71f6b0b)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test edit_conflicts_with_body_file ... ok
[INFO] [stdout] test edit_conflicts_with_body_flag ... ok
[INFO] [stdout] test edit_empty_body_aborts ... ok
[INFO] [stdout] test edit_rejects_non_interactive_stdin ... ok
[INFO] [stdout] test edit_strips_comment_lines ... ok
[INFO] [stdout] test edit_uses_visual_env_var ... ok
[INFO] [stdout] test edit_flag_creates_thread ... ok
[INFO] [stdout] test edit_flag_with_revise_body_subcommand ... ok
[INFO] [stdout] test edit_flag_revises_body ... ok
[INFO] [stdout] test edit_flag_creates_node ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_error_hint_test.rs (/opt/rustwide/target/debug/deps/cli_error_hint_test-9e6a264f5814af70)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test revise_body_subcommand_shows_hint ... ok
[INFO] [stdout] test rfc_subcommand_shows_kind_removal_hint ... ok
[INFO] [stdout] test unknown_subcommand_shows_help_llm_fallback ... ok
[INFO] [stdout] test create_subcommand_shows_hint ... ok
[INFO] [stdout] test add_subcommand_shows_hint ... ok
[INFO] [stdout] test say_subcommand_shows_node_shorthand_hint ... ok
[INFO] [stdout] test show_with_unknown_id_still_errors_thread_not_found ... ok
[INFO] [stdout] test show_with_node_id_redirects_to_node_show ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_init_warning_test.rs (/opt/rustwide/target/debug/deps/cli_init_warning_test-3c5a82992f43e4d3)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test ls_warns_when_git_forum_is_not_initialized ... ok
[INFO] [stdout] test ls_does_not_warn_after_init ... ok
[INFO] [stdout] test ls_does_not_warn_when_forum_refs_exist_without_init ... ok
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_ls_columns_test.rs (/opt/rustwide/target/debug/deps/cli_ls_columns_test-fc81960aebc95ef0)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test ls_columns_pin_overrides_default_layout ... ok
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test ls_columns_unknown_value_errors ... ok
[INFO] [stdout] test ls_auto_hides_branch_when_no_thread_has_one ... ok
[INFO] [stdout] test ls_columns_pin_can_force_branch_even_when_empty ... ok
[INFO] [stdout] test ls_auto_hides_tags_when_uniformly_empty ... ok
[INFO] [stdout] test ls_keeps_branch_column_when_one_thread_has_one ... ok
[INFO] [stdout] test ls_branch_filter_forces_branch_column ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_ls_corrupt_test.rs (/opt/rustwide/target/debug/deps/cli_ls_corrupt_test-835b9e2cc148e339)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test ls_skips_corrupt_thread_with_warning ... ok
[INFO] [stdout] test ls_kind_filter_works_with_corrupt_thread ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_manual_test.rs (/opt/rustwide/target/debug/deps/cli_manual_test-667a04225e57e599)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test manpage_is_present_and_well_formed ... ok
[INFO] [stdout] test help_llm_prints_manual_verbatim ... ok
[INFO] [stdout] test help_short_form_prints_top_level_synopsis ... ok
[INFO] [stdout] test help_short_form_h_alias_matches_long_form ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_node_show_perf_test.rs (/opt/rustwide/target/debug/deps/cli_node_show_perf_test-545b376b2974ee07)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test support::repo::tests::test_repo_is_git_repo ... ok
[INFO] [stdout] test node_show_stays_within_constant_factor_of_thread_show ... FAILED
[INFO] [stdout] test node_id_index_resolves_every_node_at_scale ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- node_show_stays_within_constant_factor_of_thread_show stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'node_show_stays_within_constant_factor_of_thread_show' (5098) panicked at tests/cli_node_show_perf_test.rs:174:5:
[INFO] [stdout] node show / thread show factor = 17.1× (508.116658ms vs 29.679695ms); the bvdk2w48 reverse-index path appears to have regressed
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x635c95f4fe68 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x635c95f4fe68 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::trace_unsynchronized::<std[d054f6f42beb1baa]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x635c95f4fe68 - std[d054f6f42beb1baa]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x635c95f4fe68 - <<std[d054f6f42beb1baa]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x635c95f65c2a - <core[5a1c3e9896636f3a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x635c95f65c2a - core[5a1c3e9896636f3a]::fmt::write
[INFO] [stdout]    6:     0x635c95f547a2 - std[d054f6f42beb1baa]::io::default_write_fmt::<alloc[154f689e5dd3bae5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x635c95f547a2 - <alloc[154f689e5dd3bae5]::vec::Vec<u8> as std[d054f6f42beb1baa]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x635c95f2cbb6 - <std[d054f6f42beb1baa]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x635c95f2cbb6 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x635c95f47c09 - std[d054f6f42beb1baa]::panicking::default_hook
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x635c95cf629c - <alloc[154f689e5dd3bae5]::boxed::Box<dyn for<'a, 'b> core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   12:     0x635c95cf629c - test[fad20673b750c10e]::test_main_inner::<test[fad20673b750c10e]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x635c95f47dc2 - <alloc[154f689e5dd3bae5]::boxed::Box<dyn for<'a, 'b> core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   14:     0x635c95f47dc2 - std[d054f6f42beb1baa]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x635c95f2cc72 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x635c95f24529 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace::<std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x635c95f2d98d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x635c95f663bc - core[5a1c3e9896636f3a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x635c95ce6a21 - cli_node_show_perf_test[b45c1a8ef52802a9]::node_show_stays_within_constant_factor_of_thread_show
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/cli_node_show_perf_test.rs:174:5
[INFO] [stdout]   20:     0x635c95ce3b27 - cli_node_show_perf_test[b45c1a8ef52802a9]::node_show_stays_within_constant_factor_of_thread_show::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/cli_node_show_perf_test.rs:140:59
[INFO] [stdout]   21:     0x635c95ce9146 - <cli_node_show_perf_test[b45c1a8ef52802a9]::node_show_stays_within_constant_factor_of_thread_show::{closure#0} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x635c95ce937b - <fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x635c95ce937b - test[fad20673b750c10e]::__rust_begin_short_backtrace::<core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x635c95cf6bf5 - test[fad20673b750c10e]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x635c95cf6bf5 - <core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x635c95cf6bf5 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}>, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x635c95cf6bf5 - std[d054f6f42beb1baa]::panicking::catch_unwind::<core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>, core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x635c95cf6bf5 - std[d054f6f42beb1baa]::panic::catch_unwind::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}>, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x635c95cf6bf5 - test[fad20673b750c10e]::run_test_in_process
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x635c95cf6bf5 - test[fad20673b750c10e]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x635c95cf1754 - test[fad20673b750c10e]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x635c95cf1754 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace::<test[fad20673b750c10e]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x635c95cf9c72 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x635c95cf9c72 - <core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x635c95cf9c72 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x635c95cf9c72 - std[d054f6f42beb1baa]::panicking::catch_unwind::<(), core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x635c95cf9c72 - std[d054f6f42beb1baa]::panic::catch_unwind::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x635c95cf9c72 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x635c95cf9c72 - <std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x635c95f4f5ff - <alloc[154f689e5dd3bae5]::boxed::Box<dyn core[5a1c3e9896636f3a]::ops::function::FnOnce<(), Output = ()> + core[5a1c3e9896636f3a]::marker::Send> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2277:9
[INFO] [stdout]   41:     0x635c95f4f5ff - <std[d054f6f42beb1baa]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7b54f96e3aa4 - <unknown>
[INFO] [stdout]   43:     0x7b54f9770a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     node_show_stays_within_constant_factor_of_thread_show
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.96s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test cli_node_show_perf_test`
[INFO] running `Command { std: "docker" "inspect" "52dd8d1d963fb2fb8a6e73b87012f9f703597211d2665bb8cbc2d9982e608f99", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52dd8d1d963fb2fb8a6e73b87012f9f703597211d2665bb8cbc2d9982e608f99", kill_on_drop: false }`
[INFO] [stdout] 52dd8d1d963fb2fb8a6e73b87012f9f703597211d2665bb8cbc2d9982e608f99
